1. Field of the Invention
The present invention relates generally to an adaptive transform coding and/or decoding system. More specifically, the invention relates to a system for efficiently coding and decoding speech and audio signals with maintaining high quality.
2. Description of the Related Art
Conventionally, as an adaptive transform coding system and an adaptive transform decoding system for efficiently coding and decoding a speech signal and an audio signal with maintaining high quality, there are MPEG (Moving Pictures Expert Group)/Audio Layers 3 or so forth. The technology of MPEG/Audio Layer 3 has been discussed in 1993 ISO/IEC 11172-3, “Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to about 1.5 Mb/s” (hereinafter simply referred to as reference No. 1).
FIG. 3 is a block diagram showing one example of the conventional adaptive transform coding system. The conventional adaptive transform coding system is constructed with an input terminal 1, a transform means 2, an analysis means 3, a quantizing parameter determining means 4, a quantizing means 5, a coding means 7, a parameter coding means 9, an adder 22, a multiplexer 23 and an output terminal 12.
In the input terminal 1, digitized audio signal samples are inputted. The input audio samples are outputted to the transform means 2 and an analysis means 3.
In the transform means 2, at every input of N time-domain audio samples, N frequency-domain-samples are generated from the input audio samples by a hybrid analysis filter bank. N frequency-domain-samples grouped in ascending order are referred to as “frame”. The derived frequency-domain-samples are outputted to the quantizing means 5 and the analysis means 3. N is a positive integer, and in case of MPEG/Audio Layer 3, N is 576. The hybrid analysis filter bank has been discussed in detail in the foregoing reference 1.
In the analysis means 3, an allowable quantization error for each frequency-domain-sample in the frame is derived and outputted to the quantization parameter determining means 4. In coding of the audio signal, a subjective quality is important. Therefore, allowable quantization error is determined so that the degradation of the frequency domain signals is not easily perceptible by human acoustic sense. The manner of determining the allowable quantization error has also been discussed in detail in the reference 1. For example, there is a method to analyze a frequency spectrum obtained through Fourier transform of the input audio samples.
In the quantizing means 5, the frequency domain signal X is quantized on the basis of a quantization step size QS derived from the quantization parameter determining means 4, Then, the quantized value Y is derived from rounding the (¾)th power of quantized frequency domain signal. Namely, the quantized value Y is expressed by:Y=nint(pow(X/S, ¾)) 
Wherein nint ( ) represents rounding process for rounding the fraction off after the decimal point, and pow (a, b) represents a to the (b)th power. The quantized values in each frame are grouped in ascending order in the frequency to be fed to the coding means 7. On the order hand, the quantizing means 5 calculates a quantization error YZ to output to the quantization parameter determining means 4. An inverse-quantized value YY of the quantized value Y is expressed by:YY=pow(Y, 4/3) 
Therefore, the quantization error YZ is expressed as:YZ=X−pow(Y, 4/3) 
In the coding means 7, as set out in detail later, each quantized value in the frame is encoded. Then, a code C1 and a code amount L1 of the code C1 are derived. The code C1 is outputted to the multiplexer 23, and the code amount L1 is outputted to the adder 22.
In the parameter coding means 9, the quantization step size QS inputted from the quantization parameter determining means 4 is encoded. Then, a code C2 and a code amount L2 of the code C2 are derived. The code C2 is inputted to the multiplexer 23 and the code amount L2 is inputted to the adder 22.
In the adder 22, the total code amount outputted from the coding means 7 and the parameter coding means 9, namely the sum of L1 and L2, is derived, and outputted to the quantization parameter determining means 4 as a total code amount.
The total code amount outputted from the adder 22 is variable depending upon the size of the quantization step size QS. Generally, when the quantization step size QS becomes smaller, the total code amount becomes larger and when the quantization step size QS becomes larger, the total code amount becomes smaller. In the quantization parameter determining means 4, the quantization step size Q is controlled so that the total code amount can be maintained to be less than or equal to the allowable code amount which is determined on the basis of the coding bit rate, and that the quantization error is proportional to the allowable quantization error. For an example of this control, at first, the quantization step size QS is set at sufficiently small value, and the coding means 7 and the parameter coding means 9 are operated to derive the total code amount. Then, the following two operations are repeated until the total code amount becomes equal or less than the allowable code amount. As the first operation, the quantization step size QS is set at a greater value in proportion to the allowable quantization error. Then, the coding means 7 and the parameter coding means 9 are operated to derive the total code amount.
In the multiplexer 23, the codes C1 and C2 are multiplexed to generate a bit stream.
The bit stream is outputted from the output terminal 12.
In the coding means 7, the quantized values of the frame are divided into three regions on the frequency axis, i.e. a type 1 region, a type 2 region, and a type 3 region. Each quantized values in the type 1 region and the type 2 region are Huffman-encoded.
At first, a method for dividing the quantized values in the frame into three regions will be discussed. The N quantized-values are grouped in ascending order of the frequency and compose the vector X as follows:Vector X=[x(1), x(2), . . . , x(N)]
Each element x(1), x(2), . . . , x(N) of the vector X represents respective quantized value. The type 1 region includes the quantized values of the low frequency signal, and includes x(1), x(2), . . . , X(2×bigvalues) of (2×bigvalues) elements. The type 2 region includes the quantized values whose absolute values are 0 or 1 and includes x(2×bigvalues+1), x(2×bigvalues+2), . . . , x(2×bitvalues+4×count 1) of (4×count1) elements. The type 3 region includes elements whose values are zero, and includes x(2×big values+4×count1+1), x(2×bigvalues+4×count1+2), . . . , x(N) of (2×rzero) elements. Here,2×big_values+4×count1×2×rzero=N. 
The value rzero is calculated byrzero=(N−t(t mod 2))/2 
where t is the maximum value satisfyingx(t)=0, (t=1, 2, . . . , N) 
(x1 mod x2) represents the remainder in division by x1 by x2.
The value count1 is calculated bycount1=(N−rzero×2−t2 −((N−rzero×2−t2) mod 4/4 where t2 is the maximum value satisfying |x(t2)|>1. The value bigvalues is derived frombig_values=(N−rzero×2−count1×4)/2 
Each element included in the type 1 and type 2 regions is Huffman-coded employing a table selected among prepared Huffman tables for respective regions. An appropriate Huffman table is selected so that the total amount of the Huffman code becomes minimum.
Huffman tables prepared for coding respective elements in the type 1 region are different in terms of the assumed appearance frequency of respective element-values and the region of the quantized values to be coded. The region of the quantized values to be coded by the Huffman table selected upon coding of each element in the type 1 region becomes larger depending upon the maximum absolute value of respective elements included in the type 1 region. All the same time, each code in the Huffman table generally becomes longer. On the other hand, since the type 2 region includes only elements having absolute values 0 or 1, the average code amount per one element upon coding in the type 2 region becomes smaller than that of the type 1 region.
The bigvalues, rzero and information relating to the Huffman tables to be used in the type 1 region and the type 2 region are coded as side information. The Huffman code and the side information are multiplexed and outputted as the code C1.
FIG. 4 is a block diagram showing one example of the adaptive transform decoding system. The conventional adaptive transform decoding system includes an input terminal 13, a demultiplexer 24, a decoding means 15, a parameter decoding means, an inverse quantizing means 19, an inverse transform means 20 and the output terminal 21.
To the input terminal 13, the bit stream is inputted. The bit stream is then outputted to the demultiplexer 24.
In the demultiplexer 24, the bit stream is separated into the code C1 and the code C2. The code C1 is outputted to the decoding means 15 and the code C2 is outputted to the parameter decoding means 17. In the parameter decoding means 17, the quantization step size is derived by decoding the code C2. The derived quantization step size is outputted to the inverse quantizing means 19.
In the decoding means 15, at first, the code C1 is separated into the Huffman codes and the side information. Next, the quantized values of the type 1 region and the type 2 region are derived by decoding the Huffman codes using the Huffman table indicated by the side information. The quantized values thus obtained are fed to the inverse quantizing means 19.
In the inverse quantizing means 19, an inverse quantized value is derived by the inverse quantization of the quantized value. The inverse quantized value YY is derived from the quantized value Y through the following equation:YY=pow(Y, 4/3) The inverse quantized values thus derived are outputted to the inverse transform means 20.
The inverse transform means 20 derives a time domain signal from the inverse quantized values through a hybrid synthesis filter bank. The hybrid synthesis filter bank has been discussed in detail in the foregoing reference 1.
Then, the time domain signal is outputted from the output terminal 21.
A first problem encountered in the foregoing adaptive transform coding and decoding systems is low coding efficiency upon coding the element in the vicinity of the boundary to the type 2 region in the type 1 region.
Most elements of the type 1 region in the vicinity of the boundary to the type 2 region have absolute value of 0 or 1 similar to the elements in the type 2 region. These elements may be encoded by using the Huffman code table for the type 2 region. However, because of the presence of a small number of elements having absolute value of 2 or more, in the vicinity of the boundary to the type 2 region, the elements having absolute value 0 or 1 in the vicinity of the boundary to the type 2 region of the type 1 region should be coded as elements in the type 1 region. Since the average code amount for one element in the type 1 region is larger than that in the type 2 region, when a small number of elements having absolute value of 2 or more are included in the type 1 region in the vicinity of the boundary to the type 2 region, the coding efficiency is degraded.
The second problem to be encountered is that when the type 1 region includes a small number of elements having a large absolute value, the coding efficiency is degraded.
The size of the Huffman table to be selected upon coding the elements in the type 1 region becomes larger depending upon the maximum absolute value of the element included in the type 1 region. At the same time, each code length in the Huffman table becomes longer. When the type 1 region includes a small number of elements having large absolute value, the average code amount for one element becomes large and the coding efficiency is degraded.